package zgrjb.snbq.teach_platform.service;

import zgrjb.snbq.teach_platform.dto.model.MessageDO;
import zgrjb.snbq.teach_platform.util.JsonData;

/**
 * 消息服务接口
 * 
 * @author system
 * @since 2024-12-28
 */
public interface MessageService {
    
    /**
     * 发送私聊消息
     */
    JsonData sendPrivateMessage(Long fromUserId, Long toUserId, String content, String contentType);
    
    /**
     * 获取用户的消息列表
     */
    JsonData getUserMessages(Long userId, int page, int size);
    
    /**
     * 标记消息为已读
     */
    JsonData markAsRead(Long messageId, Long userId);
    
    /**
     * 获取未读消息数量
     */
    JsonData getUnreadCount(Long userId);
    
    /**
     * 删除消息
     */
    JsonData deleteMessage(Long messageId, Long userId);
    
    /**
     * 搜索用户进行私聊
     */
    JsonData searchUsers(String keyword, String userType);
    
    /**
     * 获取会话列表
     */
    JsonData getConversations(Long userId);
    
    /**
     * 获取会话消息
     */
    JsonData getConversationMessages(String conversationId, int page, int size);
} 